How Use the rotation of a driver object to drive the 0-1 position of 12 driven objects
If you don't mind editing the drivers for every object individually its quit simple.
radians((LOWER_LIMIT &lt;= (abs(degrees(var)) % 360) &lt; UPPER_LIMIT) * 90)

with:

var = z rotation driver
UPPER_LIMIT = minumum rotation of driver to rotate object
LOWER_LIMIT = maximum rotation of driver to rotate object

How this works:

The comparisons return either a value 1 (True) or 0 (False)

NOTICE:  for the modulo to work you have to anable Auto run python script.
And to make it work gradually (totates 360d):
radians(LOWER_LIMIT &lt;= (abs(degrees(var)) % 360) &lt; UPPER_LIMIT) * (abs(degrees(var)) % 360 - LOWER_LIMIT) * 6

And if you want it to rotate back in opposite direction:
radians((LOWER_LIMIT &lt;= abs(degrees(var)) % 360 &lt; UPPER_LIMIT) * (-(1 / 15 ** 2) * (abs(degrees(var)) % 360 - LOWER_LIMIT - 15) ** 2 + 1) * 90)

Completely unrelated:
-binary counter
radians( ( ( degrees(var) % 2**(Driven_Object_Number))&gt;2**(Driven_Object_Number-1))* 90)

here it is counting to 128