I did something similiar to control the speed of a DC motor. I used a microcontroller to talk to a digital potentiometer, that's the key piece. When I would push a button, the micro would see that a send a command out to the digipot and it would change its resistance and hence motor speed. The micro I used can be interfaced with the serial port and you could write a little VB app.
BasicX-24 Micro programs with basic, very easy to use. Not exactly super cheap, but very powerful. I've seen them on eBay.
Digipot