Looking at the original line of code you posted, if you suddenly set the rotation speed to 0, the rotation of the object is going to also snap to zero - whereas what you want is for it to stop at it's current rotation.
Rotation speed is the change in angle per unit of time. Therefore it's something that you want to add to the angle with each iteration. So you probably want something link this:
float rotationSpeed = ofGetElapsedTimef() * rotationSpeedControl * rotationSpeedMax;
rotation += rotationSpeed;
Where rotationSpeedControl is your 0 - 1 value you pass in from the midi controller, and rotationSpeedMax is a variable you use to set the maximum speed when the controller value = 1. (edit ... previously said max speed was when controller = 0!)