ISCHANGED(StageName) && CASE(StageName, "Direct Bill Process", 1, "Awaiting Reservation", 2, "Reservation Process", 3, "Awaiting Move In", 4, "Checked In", 5, "Checked Out", 6, "Closed Won", 7, "Closed Lost", 7, 0) < CASE(PRIORVALUE(StageName), "Direct Bill Process", 1, "Awaiting Reservation", 2, "Reservation Process", 3, "Awaiting Move In", 4, "Checked In", 5, "Checked Out", 6, "Closed Won", 7, "Closed Lost", 7, 0) && $Profile.Name = "System Administrator"
ISCHANGED(StageName) &&
CASE(StageName,
"Direct Bill Process", 1,
"Awaiting Reservation", 2,
"Reservation Process", 3,
"Awaiting Move In", 4,
"Checked In", 5,
"Checked Out", 6,
"Closed Won", 7,
"Closed Lost", 7,
0)
<
CASE(PRIORVALUE(StageName),
"Direct Bill Process", 1,
"Awaiting Reservation", 2,
"Reservation Process", 3,
"Awaiting Move In", 4,
"Checked In", 5,
"Checked Out", 6,
"Closed Won", 7,
"Closed Lost", 7,
0)
&& $Profile.Name = "System Administrator"
source: https://success.salesforce.com/answers?id=90630000000gt6nAAA