Stuttering during curves can be caused by two things:
Running GCode that chops up curves into tiny segments, so that the rate at which GCodes need to be processed is very high. Not applicable to G2/G3 moves.
XY jerk set too low for speed to be maintained at the segment boundaries. This is the usual cause.
The algorithm used by RRF to determine the segment length for G2/G3 moves is:
// Compute how many segments to use
// For the arc to deviate up to MaxArcDeviation from the ideal, the segment length should be sqrt(8 * arcRadius * MaxArcDeviation + fsquare(MaxArcDeviation))
// We leave out the square term because it is very small
// In CNC applications even very small deviations can be visible, so we use a smaller segment length at low speeds
const float arcSegmentLength = constrain<float>
( min<float>(sqrt(8 * arcRadius * MaxArcDeviation), moveBuffer.feedRate * (1.0/MinArcSegmentsPerSec)),
MinArcSegmentLength,
MaxArcSegmentLength
);
I didn't have a micro mill in mind when I wrote that, so it may not be appropriate for your mill. MinArcSegmentLength is set to 0.1, MaxArcSegmentLength is set to 2.0, and MinArcSegmentsPerSec is set to 50. Perhaps your mill needs segments shorter than 0.1mm? I guess I could reduce it on machines with high XY steps/mm.