Maybe the 600 microsecond delay is too much. That's 9,600 instruction cycles. Reducing that by a few is not going to make your look run much faster. Did you try reducing the delays?
When you say that you code is not running fast enough, what do you mean? What are the symptoms?
You do know that by changing encoder++ and encoder-- to 'encoder = 0;' you are throwing away input pulses. If you are expecting the motor to track the input knob you will have to change those back.