Step motors are widely used in motion control systems. The step motor controller must perform high-precision positioning and smooth movement operation. In motion systems applying velocity profile control, the velocity of the motor gradually increases or decreases, to avoid the negative effect caused by the sudden change in velocity. Previous research proposes several step motor controller designs, that contain several modules, including a velocity profile generator, step motor driver, and feedback counter. These controllers are able to perform precise positioning and provide smooth motion operation. However, because these controllers operate in an open-loop control so the synchronous condition can be lost when disturbances in load torque exist. This paper presents the application of closed-loop control in the step motor controller. The control algorithm is based on two mode operations: open-loop and closed-loop. The controller operates in open-loop mode when it remains synchronized, and switches to closed-loop mode when it loses synchronization. This paper presents an algorithm for generating various velocity profiles and closed-loop control algorithms. The experiment is performed on a 16-b DSP, to verify the performance of the design. The experimental results show a velocity profile of unsymmetrical shape and demonstrate effective closed-loop control in an actual step motor system.