The Royals selected Adams in the 13th round of the 2009 MLB Draft, and he signed with the Royals for a $225,000 signing bonus rather than attend college. Adams was a 2012 Midwest League Mid-Season All Star. He played for the Northwest Arkansas Naturals of the Class AATexas League in 2013. He was a 2013 MiLB Royals Organization All Star, and was named Royals’ 2013 co-Minor League Player of the Year with pitcher Yordano Ventura. After the 2013 season, the Royals added Adams to their 40-man roster. In 2014, playing for the Northwest Arkansas Naturals he batted.269/.352/.427 with 65 runs, 25 doubles, 38 stolen bases while being caught 6 times, and 9 hit by pitch in 524 at bats. Adams was a Mid-Season Texas League All Star and Post-Season All Star. On September 1, 2014, the Royals promoted Adams to the major leagues. He made his Major League debut that night, replacing Raúl Ibañez as a pinch runner in the eighth inning of the Royals' game against the Texas Rangers. In 2015, again playing for the Northwest Arkansas Naturals, Adams batted.298/.360/.466 with 29 stolen bases while being caught 6 times in 373 at bats. He was released in November 2015.
After the 2015 season, the New York Yankees claimed Adams off of waivers. In 2016 for the Trenton Thunder he batted.253/.343/.363 with 31 stolen bases in 36 attempts in 289 at bats. On July 28, 2016, he was released by the Yankees. He contemplated retiring at 26 years of age.
On August 3, 2016, Adams signed a minor league deal with the Chicago Cubs. Playing for the Tennessee Smokies, he batted.325/.378/.506 with 9 stolen bases without being caught, in 83 at bats. He became a free agent on November 7.
Atlanta Braves
Adams signed a minor league contract with the Atlanta Braves organization on December 13, 2016. Braves manager Brian Snitker said: “I didn’t know who he was. I’d never heard of him.” With the Gwinnett Stripers in 2017, he batted.264/.320/.461 with 15 stolen bases in 18 attempts, in 178 at bats. The Braves promoted him to the Major Leagues on April 25, 2017. Adams recorded his first major league hit in a game against the Milwaukee Brewers four days later. Adams hit his first major league home run, a three-run shot, against the San Francisco Giants on June 22. On September 10, Adams hit a 2-run, walk off home run against the Miami Marlins in the 11th inning. The home run clinched the NL East for the Washington Nationals. For the 2017 season with the Braves, he batted .275/.339/.468, and was successful in all 10 of his stolen base attempts, in 109 at bats. On April 19, 2018, Adams was designated for assignment by the Braves. He refused an assignment to the Gwinnett Stripers and elected free agency on April 27.
Second stint with Cubs
On May 5, 2018, Adams signed a minor league deal with the Chicago Cubs. On June 30 he was released by the Cubs.
Second stint with Braves
On July 16, 2018, Adams signed a minor league deal with the Atlanta Braves. He was called up to the major leagues on September 1. With the Braves in 2018, he batted.240/.345/.520 with one steal in 25 at bats. The Braves outrighted him to the minors on October 31. He elected free agency on November 2. Through 2018, in his major league career Adams had batted.263/.333/.467 with 11 stolen bases without being caught, in 137 at bats. In his minor league career he had batted.264/.338/.403 with 235 stolen bases while being caught 44 times, in 3,718 at bats.
On January 14, 2019, Adams signed a minor league deal with the Philadelphia Phillies. He played for the AAA Lehigh Valley IronPigs, batting.255/.340/.465 with 12 home runs and 29 RBIs in 271 at bats, as he stole eight bases in ten attempts. He was released on July 1, 2019.
Third Stint with Braves
On July 31, 2019, Adams signed a minor league deal with the Atlanta Braves. He played 18 games for the Class AA Mississippi Braves. He became a free agent at the end of the season.