First of all, you have to figure out what is the difference between microcontroller (AtMEGA, PIC) and microprocessor (ARM, Intel, AMD).
Second, Marlin firmware or GRBL firmware are ment to be motion controllers.
Third, you have to have good knowledge of programming languages which you intend to use for "developing" your code for motion controller.
PC, as well as RasPi are computers with microprocessors that are overwhelmed with a lot of different tasks that has to be performed "simultaneously" so they are not good candidates for motion control, but are more than good for GUI front-ends.
Some motion controllers even do not utilize microcontrollers but utilizes FPGAs for generating Step/Dir pulses for stepper/servo motors.