What you have to do is go where you saw steven last and the kelecon (east of fortree), follow the path all the way to lillycove, and once you've gotten there and defeated may or brendan; defeat team aqua and then surf to mossdeep, and voila, your at the next gym!
I get my 8th badge in Sootopolis gym.
stoopolis city
Pokemon league
Mauville city.
sootopolis city
In Mauville. Just go up from slateport.
Go back to your dads gym in petalburg
Go to the Pokemon league.
mauville city
Go to aquas base in Lilycove
go to your father and fight him to get the fifth badge
Time to go to the Pokemon league and beat the game!