If condition won't work right

So I have a problem with a logic condition. At the center of my 2d game world(0, 0, 0) there is a big circle collider, and there are little balls with little circle colliders attached to them. Those balls fall from above and when they collide with the big circle they start flying around it ( like moon flies around the earth). However I want those little balls to rotate around the big circle clockwise if they fall on the right side of the circle and counter-clockwise if they fall on the left side of the circle. Look at my code.

if (collisionOn) {
enter code here`transform.rigidbody2D.isKinematic = true;

if (transform.position.x > 0) {
transform.RotateAround (new Vector3 (0, 0, 0), Vector3.back, 0.5f);

} else if (transform.position.x < 0) {
transform.RotateAround (new Vector3 (0, 0, 0), Vector3.forward, 0.5f);
}
}

It looks right, but when the little balls go round the big circle they will eventually make their condition false, for example if a ball lands on circle in a place with coordinates of x greater than 0, it will start going clockwise, but at the bottom of the circle the ball will hit the point where x will become 0 again, and it will not continue going around because it would make x less than 0 and thus the condition would be false. So do you have any suggestions to make that little ball go round the big circle smooth doesn’t matter where it lands?

Have you tried something like this:

private int side = 0; //use -1 for left and 1 for right

if(collisionOn)
{
	if(side == 0)
	{
		if(transform.position.x < 0)
		{
			side = -1;
		}
		else
		{
			side = 1;
		}
	}

	if(side > 0)
	{
		transform.RotateAround (new Vector3 (0, 0, 0), Vector3.back, 0.5f);
	}
 	else
	{
		transform.RotateAround (new Vector3 (0, 0, 0), Vector3.forward, 0.5f);
	}
}

That way you only check for the side once.