The following is a little involved, but it calculates the "minimum displacement" evolution by choosing the least total displacement alternatives from the permutations generated by the "AutomorphismGroup" of the graph:
{n, edges, coords1, perms} = GraphData["PappusGraph", {"VertexCount", "EdgeList",
"AllVertexCoordinates", "AutomorphismGroup"}];
coords = Transpose[Rescale /@ Transpose@#] & /@ coords1;
validPerms = GroupElements@perms;
calcPerm[1] = 1;
calcPerm[i_] := First@Ordering[ Tr /@ (EuclideanDistance @@@ Transpose@{perm[i - 1], #} & /@
(Permute[coords[[i]], #] & /@ validPerms))]
perm[i_] := perm[i] = Permute[coords[[i]], validPerms[[calcPerm@i]]]
f[x_] := Sin[FractionalPart@x Pi/2]^2
Animate[
j = Min[IntegerPart@i, Length@coords - 1];
Graph[edges, VertexCoordinates -> Thread[Range@n -> f@t perm[j + 1] + (1 - f@t) perm[j]],
PlotRange -> {{-.2, 1.2}, {-0.2, 1.2}}],
{t, 1, Length@coords, .005},
{i, 1, Length@coords, .005},
DisplayAllSteps -> True, AnimationDirection -> ForwardBackward]

The following (and more elegant) code for performing the same was done by shamelessly stealing some parts from @Vitaliy's code (from the notebook he linked in his answer)for using BSplineFunction[]
as the evolution path instead of my previous linear interpolation.
{n, adj, coords1, perms} = GraphData["PappusGraph", {"VertexCount", "AdjacencyMatrix",
"AllVertexCoordinates", "AutomorphismGroup"}];
coords = Transpose[Rescale /@ Transpose@#] & /@ coords1;
validPerms = GroupElements@perms;
calcPerm[1] = 1;
calcPerm[i_] := First@Ordering[Tr /@ (EuclideanDistance @@@ Transpose@{perm[i - 1], #} & /@
(Permute[coords[[i]], #] & /@ validPerms))]
perm[i_] := perm[i] = Permute[coords[[i]], validPerms[[calcPerm@i]]]
Manipulate[
AdjacencyGraph[adj, VertexCoordinates -> (#[t] & /@ (BSplineFunction[#, SplineDegree -> 1,
SplineClosed -> True] & /@ Transpose[perm /@ Range@Length@coords])),
PlotRange -> {{-.2, 1.2}, {-0.2, 1.2}}],
{t, 0, 1, Animator, AnimationRunning -> False, AnimationRate -> .02, ImageSize -> Small}]
Previous (simpler) Answer using the default paths instead of the minimal one. Run it to see the difference
edges = GraphData["PappusGraph", "EdgeList"];
coords1 = GraphData["PappusGraph", "AllVertexCoordinates"];
coords = Transpose[Rescale /@ Transpose@#] & /@ coords1;
f[x_] := Sin[FractionalPart@x Pi/2]^2
Animate[
j = Min[IntegerPart@i, Length@coords - 1];
Graph[edges, VertexCoordinates -> Thread[Rule[Range@Length@First@coords,
f@t coords[[j + 1]] + (1 - f@t) coords[[j]]]],
PlotRange -> {{-.2, 1.2}, {-0.2, 1.2}}],
{t, 0, Length@coords - 1, .005},
{i, 1, Length@coords, .005},
DisplayAllSteps -> True,
AnimationDirection -> ForwardBackward]