Предполагая, что вы вращаете только вокруг одной оси (как показано на изображениях), вы можете получить разницу вращения в градусах круга2, используя, например, Quaternion.Angle каждый кадр
private Quaternion lastCircle2Rot;
//...
float rotDelta = Quaternion.Angle(lastCircle2Rot, circle2.transform.rotation);
lastCircle2Rot = circle2.transform.rotation;
чем повернуть круг1 соответственно, используя, например, Transform.RotateAround
public float multiplier;
// e.g. rotate around local x = right
Vector3 YourAxis = circle1.transform.right;
circle1.transform.RotateAround(Vector3.zero, YourAxis, rotDelta * multiplier);
при использовании, например, правильный или другой «чистый» вектор, который вы также можете просто использовать
circle1.transform.Rotate(Vector3.right, rotDelta * multiplier);
как это сделано в локальном пространстве по умолчанию.