The Scunthorpe-born player, 23, has been at the club since 2008 when he was due to come to the club on work experience but ended up signing a contract as cover for the injured Joe Murphy.
He had to wait until this season for a string of first-team games, due to injury to Josh Lillis, and ended up collecting a clean sweep of the club's Player of The Season awards.
His new deal runs until the end of the 2013-14 season, with the club having an option to extend it by a further 12 months.
"Sam made it clear that he wanted to stay here long term from the off and that makes everything a lot easier," said David Beeby, the Iron's general manager.
"It was just a case of agreeing the financials with his agent and we did that last week.
"Sam's still developing and I'm sure he will keep getting better and better as he gains more experience.