Adams signed a two-year scholarship in the summer of 2010 at Brentford, having joined the club's Centre of Excellence after being spotted by the Brentford FC Community Sports Trust, progressing through the futsal scheme and the Advance Training Programme. Adams was an unused substitute for Brentford's last League One game of the 2010–11 season, a 4–4 draw at Huddersfield Town. During the 2011–12 season, Adams made 22 appearances for the youth team in the Youth Alliance South East Conference and was a star in Brentford's run in the FA Youth Cup. He scored in a 2–1 victory over Hull City in the third round and was man of the match in a 2–1 defeat away to Stoke City in the fourth round, before injuries cut short his season.
Adams signed a one-year development squad contract in the summer of 2012. He made his first team debut in a 2–0 league defeat away to Carlisle United on 9 March 2013, coming on as a 75th-minute substitute for Adam Forshaw, which proved to be his only appearance of the season. During the 2012–13 season, Adams made 22 development squad appearances and scored seven goals. In the summer of 2013, Adams signed a new two-year contract to remain part of the development squad. He made his first senior appearance of the 2013–14 season on 11 March, replacing Alan Judge after 84 minutes of a 2–0 win over Tranmere Rovers.
On 20 March 2014, Adams' Development Squad contract was upgraded to a deal which saw him become a member of the first team squad. Adams made one more appearance after the Bees' promotion to the Championship was confirmed, when he replaced Marcello Trotta after 59 minutes of a 4–1 defeat to Colchester United on 26 April. He made two first team appearances during the 2013–14 season and scored two goals in 10 games for the development squad. Despite being well down the pecking order, Adams was called into the first team squad for the second game of the 2014–15 season against Dagenham & Redbridge in the League Cup first round, but remained an unused substitute during the shootout win. He made 9 appearances and scored one goal for the development squad during the 2014–15 season, before departing the club in late February 2015. Adams made just four senior appearances for Brentford, all as a substitute.
On 11 February 2014, Adams joined Conference Premier side Barnet on loan for the rest of the 2013–14 season. He made his debut on 15 February, coming on as a 62nd-minute substitute in a 1–0 home win over Tamworth. Adams was awarded the maiden first team start of his career in a 1–0 win over Wrexham on 22 February. He lasted 82 minutes before being substituted by Roberto Casabella. Adams made five appearances during his spell, before being recalled by Brentford on 9 March.
Adams and Brentford teammate Josh Clarke joined League Two side Stevenage on a one-month youth loan on 17 October 2014. Adams went straight into the squad for the following day's league match against Accrington Stanley and made his debut when he came on for Tom Pett at half time during a 2–1 victory. He made the first league start of his career in a 3–2 defeat to Portsmouth in the following game, lasting 86 minutes before being substituted for Josh Clarke. He retained his place for the visit of Burton Albion to Broadhall Way on 25 October and scored what looked to be the winner in the 84th minute, though as a result of a "wicked deflection", the strike was credited as an Ian Sharps own goal. After three further appearances, Stevenage took up the option of extending Adams' loan for another month. On 21 December, Adams returned to Brentford after his loan expired. He made 11 appearances, which included six starts.
On 27 February 2015, Adams signed for United Soccer League side Louisville City, after impressing manager James O'Connor while on loan at Stevenage. He made 21 appearances and scored three goals in a successful 2015 season, which saw City reach the Eastern Conference Finals. Adams was not retained for the 2016 season.
Adams rejoined Stevenage on a short-term deal on 25 March 2016. He made his first appearance eight days later versus Luton Town, replacing Jake Mulraney after 54 minutes of the 1–0 victory. He made one further appearance and was released at the end of the season.
On 3 August 2016, Adams returned to the United Soccer League to join Real Monarchs. In what remained of the 2016 season, he scored one goal in five appearances.As of match played 3 September 2017.