Arduino/GRBL is the cheapest option. Not that high performance, or that many features, but will plod along and do the job.

Next step up would be a secondhand desktop to get a working parallel port. Opens up the options of LinuxCNC, or Mach.

Then you're in to the realm of various USB/Ethernet external motion controllers.
CS-Labs, PMDX, CNC-Drive UCxxx, KFlop, SmoothStepper, Planet CNC, along with various Chinese offerings, and a few others I've forgotten.

What would be recommended depends on if you're looking for any specific features, want certain customisation, and budget.