Middleton began his career at Doncaster Rovers, and was part of the Academy team that won the Youth Alliance Cup with a 4–0 win over Exeter City at St James Park in 2012. He made his first-team debut in the League Trophyarea quarter-final match against Crewe Alexandra at the Alexandra Stadium on 4 November 2012; Rovers drew 1–1 and lost the resulting penalty shoot-out. He was one of six youth team players to be given a one-year professional contract by the club in July 2013. He made his second first-team appearance on 7 October 2014, in a 3–0 victory at Burton Albion in the League Trophy, coming on as an 87th-minute substitute. He made his League One debut on 28 December, coming on for Marc de Val 34 minutes into a 0–0 draw at Peterborough United. Speaking after the match, manager Paul Dickov said Middleton was close to starting a first-team game and that "he's been slightly unfortunate with the form of Paul Keegan, Richie Wellens, Marc de Val and Dean Furman being ahead of him". He made his first start for "Donny" on 14 April, in a 0–0 draw at Leyton Orient. Coach Rob Jones had also appointed him as captain of the youth team for the 2014–15 season, and Middleton helped the squad to a second-place finish in the Final Third Development League, before he signed a new two-year contract in June 2015. He worked with the club's new nutritionist in the 2015–16 pre-season, and bulked up significantly as a result. He established himself as a first-team regular, making 41 appearances across the campaign, however Doncaster were relegated into League Two. He signed a new three-and-a-half year deal in December 2015. He made six starts and 19 substitute appearances in League Two in the 2016–17 season as Rovers finished in third-place to secure automatic promotion at the first attempt. However he was one of five players transfer listed in May 2017. Two months later manager Darren Ferguson said the only enquiries made for Middleton came from Swindon Town, who did not make any formal offer, and he went on to criticise Middleton's agent for failing to find him a move away from the Keepmoat Stadium.
Port Vale
On 31 August 2017, Middleton signed a one-year contract with newly relegated League Two side Port Vale, as manager Michael Brown's 19th summer signing. On 11 November 2017, he was allowed to join F.C. Halifax Town on loan, a National League club previously coached by new "Valiants" manager Neil Aspin. Middleton said "I didn't see coming here as a step back. I saw it as a way to kick-start my career". He was released upon the expiry of his contract at Vale Park in May 2018.