It depends on where the information is coming from that will guide the CNC machine. If you have a standard CAD-CAM package then it is likely to output G-Code. Then you need to translate that G-code into something that your steppers can use. GRBL is great for this.
If you have Gerbers or something else, then you will probably need something else.
An UNO is kind of small for CNC. Most types of machines such as 3D printers and routers need more than 2 axes and the UNO simply doesn't have enough pins to drive that many steppers. That's why all the major software you are likely to find will be written for a MEGA or other type of Arduino. The extra memory on the MEGA means it will be difficult to fit that software into the UNO's memory.