Johnson, who made nearly 200 appearances for City, made Smith his skipper at Oldham after signing him on a permanent deal last summer following a loan spell.
"I'm very excited to be here, it's a great move for me and it's going to be a big season ahead," said Smith, for whom City paid an undisclosed fee to make him their fourth summer signing.
He added on the club's official website: "I think the club has been interested for a while - the last six months to a year - and I'm happy the deal has now gone through.
"I've played here a few times and I've got a couple of friends who say nothing but good things about the place. I know it's a very big club, so I'm looking forward it.
"Lee Johnson has been a great help and put a lot of trust in me last season, making me his captain, and I'm very grateful for that.
"I had a great time at Oldham and wish them all the best in the future. He said nothing but good things about the club and he had a really good time here."