I use the ask-suggest-tell chain of events to "install" gas and brakes.
To transition upward, I ask from the seat, then suggest with the leg, and if that fails tell with a judiciously applied whip behind the leg.
To transition down, I ask from the seat, close leg, close hands (no pulling, just closing the door forward).
Applied in that order, starting softly and escalating, builds up a recognizeable chain of events for the horse to think about. He'll eventually figure out that if he doesn't move off of the leg, he'll get a 'spank'.
A well-timed half-halt is also helpful in cleaning up transitions - it gets the horse's attention, rebalances and prepares him for the transition, etc.
Having a solid understanding of the classical seat helps loads with getting smooth and clean transitions. Even if you aren't a D-dressage rider, the classical seat is worth understanding. It's very difficult to attain that subtlety you're looking for without an independent seat, strong core muscles, etc. This is one of those many things that will really fix itself when you stop focusing on the horse's 'problem' and start focusing on your own. (Speaking from experience in a big way, here)