DC motor control
now you want is to control speed what , why dont you use L293 chip . go google it up , it is cheap and used PWM to control it , but the chip has to fit your motor's current specification . There are 2 versions chip , one is for the higher current and another one is for the lower. Using L293B to control my motor which runs in high current . Direction I think if you need that feature then you need to send pulse so that it can move at a certain angle . but the angle will not be accurate unlike servo motor
hope this helps
pirate civictypeR