Following a spell in the Cherry Orchard youth team Stevens signed professionally with UCD but was released at the end of the 2009 season. He had trials with Nottingham Forest, Hull City, Stockport County and Yeovil Town. He was one of Jeff Kenna's first signings for St Patrick's Athletic. He plays as a centre back or as a left back. He made his professional debut in a 1–0 win over Cork City at Turners Cross in March 2009. Stevens made a breakthrough into the first team where he made himself the first choice left back with performances in the league, FAI Cup, and Europa League qualifiers. He made six appearances in the 2009–10 UEFA Europa League as Pats advanced through two rounds to the play-off round.
Shamrock Rovers
He signed for Shamrock Rovers in December 2009. Stevens made his Rovers League debut at home to Dundalk in Tallaght Stadium on 21 March 2010 He capped off his first League of Ireland season with Rovers by winning his first title as Shamrock Rovers won the league title on the final day of the season. In 2011, he won the All IrelandSetanta Cup with Rovers. He won the league title again in 2011. He competed in the 2011–12 UEFA Europa League with Rovers, the club's first ever appearance in the competition. Over the course of two seasons, Stevens made 15 appearances for Rovers in European competition. He capped off a memorable year by winning the PFAI Young Player of the Year award
On 31 August 2011, it was announced by Aston Villa manager Alex McLeish that Stevens would sign a three-year contract with the Premier League club, effective from January 2012. The agreement allowed Stevens to remain at Rovers until January 2012 to support them in their maiden UEFA Europa League campaign. Following Shamrock Rovers' exit from European competition, Aston Villa officially announced the signing of Stevens on 3 January 2012. Stevens spent most of his first months at Villa playing for the reserve team. He then made his first start for the first team in a 2–1 pre-season victory over Burton Albion, on 14 July 2012. He made his full debut for the team, starting in Villa's 3–0 win against Tranmere Rovers in the League Cup second round and also came off the bench in the fourth round win over Swindon Town. On 3 November 2012, Stevens made his first league appearance for Villa in a 1–0 win against Sunderland, coming on as a substitute for Eric Lichaj. Stevens made his full league debut for Villa in the next match, starting against Manchester United on 10 November 2012, due to an injury to Joe Bennett and the suspension of Lichaj. In the next game, only Stevens' third league appearance for the club, the Villa defence conceded five goals as they were beaten 5–0 by championsManchester City.
Loans
Stevens made his debut for the club in a League Cup tie against Liverpool, on 27 August 2013. Stevens returned to Aston Villa after a month's loan, having made four appearances in all competitions for Notts County. Stevens signed on a one-month loan deal with Doncaster Rovers on 28 November 2013. He then signed a one-month loan deal with Northampton Town on 10 October 2014. Stevens was again loaned to Doncaster on a one-month loan on 6 November 2014.
On 15 June 2015, Stevens signed a two-year deal with Portsmouth. He scored his first goal for Portsmouth in a 3–2 win against Newport County on 26 December 2016. In his first season at Portsmouth, Stevens quickly established himself as a key member of one of the division's tightest defences, racking up 53 appearances in the process, as Portsmouth finished sixth in manager Paul Cook's first season in charge. As he approached the end of a second season as Portsmouth's first-choice left back, on 9 April 2017, Stevens was named in the Team of the Season at the EFL Awards. This was a season in which he notched in with one goal and a very notable seven assists which contributed to Portsmouth's promotion to League One.
Sheffield United
Stevens joined Sheffield United in May 2017. On 28 April 2019 Stevens gained promotion with United to the Premier League. In March 2020, Stevens signed a contract extension that see him remain at Sheffield United until 2023.