Is there as way to export a blender object for cnc machining so it doesn't become a huge file size when converted to .stp?
This is a good question, and the answer unfortunately is mostly "no". IGES and STEP files are (mostly) CAD/CAM files, and are not point- or polygonal-based. The file format itself is ASCII, and dates back into the 70s. It is great for driving CNC machines, since that's its history.

Some modeling programs (Rhino) can get you there from nurbs-based modeling. I am not aware of any option in Blender (or ZBrush, Maya) allowing you to get a clean IGES.  You can get STL files, which are great for 3D printing and which some routers will accept.

There are a number of programs that will go back and forth between Nurbs, STEP and IGES...  and some higher-end products (SolidWorks) will bring in an stl and generate an IGES or STEP.

If you finda  better answer -- post here. We use Blender for a lot of 3D output, but when we need tooling, typically we need to have IGES... and this is the best info I have at the moment!