Animate which faces a material is assigned to
Two preliminary animations. Top with constant color. Lower with linear interpolated color.  2 Samples [only] per frame with Cycles, thus graininess. The OP can deliver more exact visual requirements.

import bpy
import datetime

print(datetime.datetime.today())


def object_id_mark():
    m = 0
    for s in bpy.context.selected_objects:
        m = m + 1
        s.pass_index = m


object_id_mark()


In the Python above, the object index is assigned values to coordinate with the materials nodes.  Those objects are the faces of a sphere with a parent for grouping.  Extrude Individual Faces and Separate Spare Parts.  Those objects have the same parent. They can be easily selected and the script above is executed.  



Material Nodes, note the group. Image above.



Detail of Group.  Image above.

Material Nodes.    The color ramp interpolation can be set to constant or linear.  Click to see larger image.  



Correct RNA path.  Image above.



Be especially careful on the node named [Datablock Careful].  This value is the current frame in a material node which requires Datablock Driver. The 3 Panels are intended to stress the necessity of navigating a deep heirarchy in the Data-Blocks Mode of the Outlner Window.

ObjectName/MaterialSlots/[MaterialName]/Material/[MaterialName]/NodeTree/ShaderNodes/[NodeName]

then

Outputs/Value/Node/[NodeName]/DefaultValue

This list is quite long and my path may not meet exactly your reading of the path. Changing the value manually will verify you have correctly navigated the hierarchy.  The Outliner Data-Blocks window interface may help you reduce clicks by automatically opening a single choice when present.

Image Above.