Thanks for the replays.
Currently, when it's between 300 & 750 it alternates between 0 & 1 on every loop.
dir = 1
dir = 0
dir = 1
dir = 0
dir = 1
dir = 0
dir = 1
dir = 0
e.g. Runs the motor at 1/2 speed.
When the pot goes over 750, it runs at full speed, but doesn't reverse direction.
When the pot goes under 300, it runs at full speed, and reverses direction.
I'm not sure what a PID algorithm is or how to use it....?