The ferry Aurelia left the Italian city of Ancona late on Wednesday heading for Split in Croatia.
But it lost power in one of its engines, leaving it drifting in the northern Adriatic, according to Croatian media.
The ferry’s owners, the Italian company SNAV, would only say that mechanics on board are doing everything to fix the problem and bring the passengers to shore.
Two tugboats were sent to rescue the boat but they struggled with the weather, according to David Radas, a spokesman for Croatia’s Ministry of the Sea, Transport and Infrastructure.
He told Croatian broadcaster HRT: “Since the whirlwinds were blowing more than five metres in the meantime, it was decided that they were not adequate and returned to the port of departure.”
A stronger boat was sent late on Thursday morning but conditions were still difficult.
Mr Radas told the local news website Slobodna Dalmacija (Free Dalmatia) that the sea was “blowing very heavily and the waves are about five metres high”.
He added: “The ferry and the tugboat should meet somewhere two to three miles from the Kornati Islands [in Croatia], or parallel to it in the waters off the Sibenik and Zadarska County boundaries.
“I cannot say when that will happen, it depends again on changing sea conditions.”
The ferry is carrying 250 passengers, 92 crew and around 50 cars; there were no injuries among those on board.
Janja Pazanin, who is on the ferry, told HRT that “everyone is happy” and that “the waves are smaller, the ferry sails slowly but passengers are patient”.
Another passenger, Branko Kronja, said those on board had initially been panicking and nervous but “the condition calmed down when they learned that the life-raft was on the way”.
The ferry had been due to reach Split in the early hours of Thursday.