GCode is used to define the moves to be made by the CNC machine.
Some other program is required to convert the GCode into instructions to move the motors.
In the Arduino world the program GRBL can be used to control stepper motors from GCode.
If you have written your own Arduino program to control stepper motors you will know what instructions it takes and you could write your own code to convert GCode to your motor control system.
I confess I have no idea how to make a machine follow an arc other than creating a large number of small GCode straight-line moves. I have no doubt there is a better way. I know that it is possible to specify arcs in GCode but I have not yet tried to figure out how I could convert those into instructions for my stepper program. I don't presently have any need for that.
Look at graphics programming - Bressenham's algorithms and so forth. With motion control you
have the extra parameter of time, so its a generalization of generating (x, y) or (x, y, z) coords to
(x, y, t) or (x, y, z, t) coords. To drive steppers you need to ensure the delta's in the spatial coordinates
are 1 or less so that you don't miss steps.