Yes you can, but...
1. The problems you bring up about computers being sensitive to RFI/EMI are real, but the computer itself isn't really a problem if you use a separate ethernet-based motion controller or other isolating device(s). The components sensitive to EMI are the parts like limit switches or some of the components on BOB's or cheaper stepper drivers that are directly connected to the noise-generating parts. If you follow good electrical grounding practices (star grounds, no ground loops, shield high-power/frequency VFD -type things from signal wires) you'll likely be fine and your PC will be stable as a rock.
2. Do you want to use GRBL for your G-code execution? Remember, the various hobby & commercial g-code software/firmware systems all have fine(ish)-tuned motion/trajectory planners to figure out the appropriate motor acceleration/deceleration while doing 'look-ahead' calcs. I don't know enough about GRBL to know if it's really stupid or awesome. Recommend you investigate further and see if there are any commercial products based on this code interpreter, or if everyone using GRBL is basically a basement nerd with a home-built toy. What (very) little I have gleaned indicates it's pretty nice, but takes quite a bit of programming.
Ask yourself - do you want to make parts ASAP, or do you want to spend your time learning C+ or some other programming language and loads of time fiddling before you can make trinkets?
3. Consider the computational speed of a Pi and see if it will process/send step & direction pulses fast enough for your particular system. If you're still in the planning stage I suggest using 'worst case' values for the inputs:
1. Ball screw or rack & pinion units (inch or mm) per turn. [If you don't know whether you're using 5mm or 20mm per turn screws, do the math with 5mm as it will require more pulses per time unit to reach the speed in #4 below]
2. Stepper motor steps per rotation (including micro steps needed to get the resolution desired).
3. Figure steps/pulses per inch or mm from above
4. Determine maximum desired rapid speed, as well as maximum realistic feed speed for each axis
5. Now calculate how many pulses per second to achieve desired rapid & feed speeds
6. Now add up the 3 (or more) pulses per second that that is your target for the computing device (Pi, Arduino, other micro controller). If the device can't process or send signals quickly enough, your machine will drop steps or not be able to move at the speeds you desire.
Quick example from my mill:
1. 0.1968" per rev (5mm screws)
2. 2000 steps per turn (200 steps, times 10x micro steps)
3. 10160 steps per inch (5.08 revs/in)
4. 400ipm rapids desired on X/Y, 200ipm on Z. 150ipm feeds for all axis.
5. 67.73 pulses per second (kHz) for X/Y, and 33.87kHz for Z. 25.4kHz per axis at max feed. (10160 PPM x 400 IPM / 60 sec/min)
6. Max pulse demand is about 170kHz with all three at rapid.
Can the micro-controller you're considering send output signals on three (or more) pins at the speeds you need? I know the older Arduino I have set up as a DRO on my lathe is limited to about 32kHz or something.
I have two suggestions for your consideration as an alternate to either a big workstation or a Pi-type micro-controller:
First, you can purchase a micro windows (or Linux) computer used for gaming. These are rather inexpensive, very fast, and some are fan-less to keep dust out. I purchased a Zotac (I think that's the brand) for my mill and am quite pleased with it. Less than $200, and I get everything you'd normally get with a big desktop (1gig drive, on-board graphics, ethernet, wifi, USB3.0, etc.) in a tiny package that simply mounts to the back of my monitor and connects to the motion controller via ethernet cable.
Get one with an SSD and they're essentially instant-on during start-up. I now have internet, CAD/CAM, garage music, Youtube, and so forth right at my mill. Having to pass a thumb drive between a separate computer and my mill (or even wifi) would drive me nuts now. I can leave Fusion 360 open on my mill controller and adjust the model & CAM, post the file, and cycle start in seconds without getting off my rear end.
Most important - I didn't have to program anything in a computer language I don't understand. Windows -
duh. $60 commercial CNC software -
duh. Plug in motion controller and tell windows to find it -
duh. Tell CNC software what pins do what -
duh. Game on, make some chips.
The other alternative is a stand-alone CNC controller such as the Masso.
https://www.hindtechnology.com/product-category/cnc-controllers
$550 or so is a bit higher, but it has
everything in one package. Computer, CNC G-code interpreter, breakout-board, etc. Just add a monitor and keyboard and you''re in business. It even supports touch-screens. If you're doing a bigger router, the 4 or 5 axis will drive/slave the A to the X or Y. I seriously considered one of these and the only reason I didn't get one is that the step pulse frequency (110kHz), while perfectly suitable for stepper-based machines, would have been too low for my set up when I move to servos with high-resolution encoders. I considered 200kHz to be my 'floor', so despite the Masso's advantages I had to go with a different arrangement.
Sorry - a bit long-winded. Good luck.
-Spumco