This paper presents a Field Programmable Gate Array based closed-loop motion control system for stepper motors. It consists of three components, including closed-loop control unit, driving unit and feedback unit. To overcome some of the drawbacks with an open-loop stepper motor motion control system or a conventional servo system, a self adaptive algorithm is proposed. By detecting the difference between the command and feedback signals, measures are taken prior to the occurrence of loss synchronization. All of the control logic is implemented in one FPGA chip. Simulation and testing results are presented at the end of this paper.