Koepfer spielte bis 2019 hauptsächlich auf der ATP Challenger Tour und der ITF Future Tour. Er konnte vier Einzel- und zwei Doppeltitel auf der Future Tour feiern. Auf der Challenger Tour gewann er 2017 im Doppel in Columbus an der Seite von Denis Kudla seinen ersten Titel. Sein Debüt auf der ATP Tour machte er bei den Winston-Salem Open im selben Jahr, als er als Lucky Loser in der ersten Runde gegen Horacio Zeballos, der damaligen Nummer 58 der Weltrangliste, in zwei Sätzen verlor. Seinen ersten Sieg auf diesem Niveau feierte er ein Jahr später an gleicher Stelle, als er abermals als Lucky Loser gegen Tennys Sandgren in zwei Sätzen gewann, dann jedoch im Achtelfinale ausschied.
Im Juni 2019 feierte er seinen bisher größten Erfolg, als er das Challenger-Turnier von Ilkley im Finale gegen Dennis Novak in drei Sätzen gewinnen konnte. Durch diesen Sieg erhielt er zudem eine Wildcard für das Grand-Slam-Turnier in Wimbledon, seinem ersten Einsatz auf diesem Niveau. Dort konnte er in der ersten Runde Filip Krajinović besiegen, scheiterte dann aber in der Zweiten Runde an Diego Schwartzman.
Bei den US Open 2019 konnte sich Koepfer über die Qualifikation in das Hauptfeld spielen und erreichte dort nach Siegen gegen Jaume Munar, Reilly Opelka und Nikolos Bassilaschwili überraschend das Achtelfinale, welches er gegen den späteren Finalisten Daniil Medwedew nach vier Sätzen verlor. Mit dem Sieg gegen Nikolos Bassilaschwili schlug er erstmals einen Spieler aus den Top 20 der ATP-Weltrangliste. Nach dem Turnier war Koepfer mit Platz 86 erstmals unter den Top 100 der Weltrangliste.
Aufgrund seiner guten Weltranglistenposition war er 2020 für das Hauptfeld der Australian Open qualifiziert, schied hier aber bereits in der ersten Runde aus. Im März debütierte Koepfer für Deutschland im Davis Cup. Er gewann die abschließende Partie gegen Belarus in zwei Sätzen, nachdem der vorzeitige Gesamtsieg bereits festgestanden hatte. Das gleiche Schicksal wie schon bei den Australian Open ereilte ihm bei den in den September verschobenen US Open 2020, wo er in der ersten Runde dem gesetzten Taylor Fritz in vier Sätzen unterlag. Kurz darauf qualifizierte er sich in Rom erstmals für ein Masters und konnte sich dort nach Siegen gegen Alex de Minaur, Gaël Monfils, und Lorenzo Musetti für das Viertelfinale qualifizieren, welches er in drei Sätzen gegen den Weltranglistenersten Novak Đoković verlor. Mit dem Sieg gegen Gaël Monfils gelang ihm erstmals ein Sieg gegen einen Top-10-Spieler.
Bei den folgenden French Open 2020 erreichte er die zweite Runde, in der er in vier Sätzen gegen den Sieger von 2015 Stan Wawrinka verlor. Durch diese Erfolge kletterte Koepfer auf Rang 61 der Weltrangliste.
Im März 2024 erreicht er mit Platz 49 die beste Weltranglistenposition seiner Karriere.
Zeichenerklärung: S = Turniersieg; F, HF, VF, AF = Einzug ins Finale / Halbfinale / Viertelfinale / Achtelfinale; 1R, 2R, 3R = Ausscheiden in der 1. / 2. / 3. Hauptrunde; RR = Round Robin (Gruppenphase); PO = Playoff (Auf- und Abstiegsrunde in der Davis-Cup-Weltgruppe); n. a. = Turnier wurde in dem Jahr nicht ausgetragen
1 Das Turnier von Hamburg ist seit 2009 nicht mehr Teil der Masters-Serie. 2 Das Turnier von Stockholm fand nur von 1990 bis 1995 als Masters-Turnier statt 3 Das Turnier von Stuttgart fand 1995 einmal in Essen statt und war davor nicht Teil der Masters-Serie 4 Hier gelten nur – wie auch bei bei Finalteilnahmen und gewonnenen Titeln – Turniere der ATP Tour sowie die vier Grand-Slam-Turniere und die ATP Finals; d. h. keine Challenger- und Future-Turniere oder Mannschaftswettbewerbe (Davis Cup oder World Team Cup). 4Letztere zählen jedoch in den Sieg/Niederlagen-Statistiken rein. Kurzfristige Rücktritte vom Match zählen weder zu den Turnierteilnahmen (wenn in der ersten Runde) noch zur Siegesbilanz.