Why is dative used in this sentence?
Ich muss am Zoo umsteigen.
There is movement to a destination, which I think should be accusative.
No. What ist the destination of changing?
It's the same in English: You change trains at a station. You don't change trains to a transfer station. You travel to a destination station, but you change at a transfer station.
Note, that also arriving is not a movement but an action that you perform at a certain place.
Movement to a destination = accusative case
I walk into the house.
Ich gehe in das Haus.
I travel to the coast.
Ich reise an die Küste.
Movement without a destination = dative case
I walk inside the house. (I don't enter or leave it.)
Ich gehe in dem Haus.
I arrive at the coast.
Ich komme an der Küste an.
I change train at the interchange station.
Ich steige an der Umsteigestation um.
#1 and #3 are easy to understand textbook examples. In #1 you are outside the house and moving from the outside to the inside where the movement ends. This is a typical example of movement towards a target. In #3, you are in the same place (the inside of the house) all the time. You move, but you don't change the location.
I think also #2 is easy. You move, at the beginning you are not at the coast, but when the movement ends, you are at this place. This is a typical movement to a destination and therefore needs accusative case.
But why is #4 in dative case? What is the difference between #2 and #4?
The difference is, that you can't say "I'm arriving right now" when you are hundreds of miles away from the coast. You can say "I'm traveling right now" at any point of your journey, but the only place where the sentence "I'm arriving right now" is true, is at the coast. Arriving is not a movement. It is an action that is performed at a single point in space.
And this is true for changing too. "I'm changing right now" is only true when you are at the interchange station. This sentence is false at any other point of your journey. Of course you are moving during changing. You move from one train to another. But this is like walking inside the house. So it needs dative case.
That is because the target would be the vehicle you are entering for the action umsteigen, not the station.
Ich muss am Zoo in den Bus umsteigen.
The bus is where you go to. Ask yourself if there's a to involved, a direction. This helps a lot even in tricky situations:
Der Stürmer schießt den Ball ins Tor.
Here, the ball goes to the goal. → the goal is the direction → in+‹Akk›
Der Stürmer schießt den Ball am Tor vorbei.
Here, the ball goes past the goal. → the goal is not the direction → an+‹Dat›