In a drab first half, there were few chances. Arron Davies poked wide with an outstretched boot from John O'Flynn's cross for Exeter and Craig Westcarr scuffed a shot into the arms of goalkeeper Artur Krysiak after turning well for Chesterfield.
The goal came after 31 minutes when Westcarr got past two defenders with ease and crossed to the back post for Atkinson to head in from close range.
Chesterfield had chances to increase their lead after the break but found Krysiak in top form. The Pole twice saved well from Mark Randall and Westcarr.
Exeter's first effort on target came after 79 minutes when substitute Guillem Bauza's long-range effort was tipped over the crossbar by visiting keeper Richard O'Donnell. The hosts thought they had equalised in stoppage time but Danny Coles saw a header cleared off the line and Liam Sercombe was denied by O'Donnell.
The defeat was Exeter's fourth in only seven league matches on home soil this season.