I have just started a new game and built four bus stations in a city (2000 pop.). Now one has over 300 passengers waiting and the others have nearly nothing.
Is there any way for me to determine where they want to go?
They'll go anywhere. Passengers in OpenTTD are treated just like any other types of goods - sent them to the next block, or 3000 miles away (preferably through something faster than a bus) and they'd happily pay you for the trip. Supply and acceptance of passengers are separate, and do not affect each other.
The problem you're having is probably because the stations are overlapping each other too much - meaning they are competing with each other for passenger. You're also building some of them out of the town, which means that though they accept and supply passenger, in reality, the amount is minuscule.
What you would really want to do at this stage of the game is to build one or two station in the center of that town, then transport the passenges picked up there to another town (preferably of similar population, or two smaller towns), so that you are covering enough distance to get a good sum of money out of each trip.
Since Yi Jiang has already explained the way it normally works (with passengers just happily going anywhere you take them), I thought it might be worth noting that there are multiple alternative versions of the game that change this, making it so that passengers and cargo have to be delivered to a specific place. This considerably changes the game, making it quite a bit more difficult, but more realistic and perhaps more interesting, depending on the player.