I sit down to every session with a stack of NPCs in a folder on my left, and on my right, a notepad with one page of ideas I can use in case the players don't get themselves into enough trouble. It's my philosophy that if you set things up right, the players and the events will take care of the story. Sometimes the players get into a "sit and wait" mode. This is to be discouraged in every way. The players are going to spend some time reacting to the GM, that is inevitible. I am never happier than when my players are enthusiastically involved in shaping the game.
However, to improvise requires a set of learned skills. First, you begin with a pre-published adventure. It will probably seem somewhat lame, but your players won't care. Then, when you're ready, you move on to adventures you write yourself, with the acceptance that half-way through (if that far) the PCs will swerve from the plot, and you'll end up throwing most of it in the trash while you wing it. It's nothing to fret about. Then you move up to "configurable" adventures, which are more resistant to player tampering. Basically, the adventure is three to five scenes you want to include, and have a number of ideas about how they could arrive in each of those scenes. In between, you riff. Eventually, you'll have run so many scenes, you can strip down their descriptions to the bare essentials, which will fit, as I noted above, on a single piece of notebook paper.