Faits :
A.
X._, ressortissant kosovar né en 1980, est arrivé en Suisse en janvier 1999. La demande d'asile qu'il y a déposée a été rejetée en juillet 1999; il a toutefois été autorisé à rester en Suisse jusqu'au 31 mai 2000 au bénéfice d'une admission à titre collectif. Après avoir quitté notre pays le 26 mai 2000 grâce à une aide au retour, il y est revenu illégalement en juin 2001. Le 26 juillet 2002, il a été condamné à deux mois d'emprisonnement avec sursis pendant deux ans et à une amende de 300 fr. pour violation grave d'une règle de la circulation routière pour ne pas avoir observé les signaux, vol d'usage d'un véhicule, délit et contravention à la loi fédérale sur le séjour et l'établissement des étrangers et à la loi cantonale sur le contrôle des habitants.
X._ s'est marié le 10 décembre 2004 avec une ressortissante suisse et a dès lors obtenu une autorisation de séjour annuelle, qui a été régulièrement prolongée jusqu'au 10 décembre 2009. Les conjoints se sont séparés en mars 2009. L'épouse a accouché d'un enfant le 2 avril 2009, dont il a été établi par jugement du 12 décembre 2011 qu'il n'était pas le fils de X._. Le divorce des époux a été prononcé le 22 mars 2012.
B.
B.a. Par décision du 24 janvier 2012, le Service des migrations du canton de Neuchâtel (ci-après: le Service des migrations) a refusé à X._ la prolongation de son autorisation de séjour.
Le 29 mai 2012, le Département de l'économie du canton de Neuchâtel (actuellement: Département de l'économie et de l'action social; ci-après: le Département) a rejeté le recours déposé par X._ contre la décision du Service des migrations.
Le 2 juillet 2012, X._ a recouru devant la Cour de droit public du Tribunal cantonal de la République et canton de Neuchâtel (ci-après: le Tribunal cantonal) contre la décision du Département du 29 mai 2012. Par arrêt du 17 avril 2013, le Tribunal cantonal a rejeté le recours et transmis le dossier de la cause au Service des migrations pour fixation d'un nouveau délai de départ. X._ a interjeté recours contre cet arrêt auprès du Tribunal fédéral.
Par arrêt du 4 octobre 2013 (cause 2C_472/2013), la Cour de céans a constaté que le Tribunal cantonal avait violé le droit d'être entendu de X._ en omettant de lui transmettre la pièce intitulée "Informations débiteur" établie le 13 août 2012 par l'Office des poursuites, que le Département avait produite en cours de procédure. En conséquence, il a admis le recours, annulé l'arrêt du 17 avril 2013 et renvoyé la cause aux juges cantonaux pour nouvelle décision dans le sens des considérants.
A la suite de cet arrêt, le Tribunal cantonal a transmis une copie du document en question à X._. Celui-ci a pris position sur cette pièce, fournissant des explications sur l'état de ses dettes et sur les remboursements effectués; il a par ailleurs transmis au Tribunal cantonal d'autres pièces, dont les documents "Informations débiteur" et "relevé de compte", établis le 16 janvier 2014 par l'Office des poursuites.
B.b. Le 10 mars 2014, le Tribunal cantonal a une nouvelle fois rejeté le recours et transmis le dossier de la cause au Service des migrations pour fixation d'un nouveau délai de départ.
C.
Agissant par la voie du recours en matière de droit public, X._ demande au Tribunal fédéral, sous suite de frais et dépens, d'annuler la décision du Tribunal cantonal et de lui octroyer une prolongation de son autorisation de séjour, voire une autorisation de séjour conditionnelle; subsidiairement, de renvoyer la cause au Tribunal cantonal ou au Service des migrations pour nouvelle décision dans le sens des considérants.
Le Tribunal cantonal s'est référé aux motifs de son arrêt et a conclu au rejet du recours. Le Service des migrations a conclu au rejet du recours. Le Service juridique du Département de la justice, de la sécurité et de la culture du canton de Neuchâtel s'en est remis à l'appréciation du Tribunal fédéral. L'Office fédéral des migrations (à partir du 1 er janvier 2015 : Secrétariat d'Etat aux migrations) a proposé le rejet du recours.
Par ordonnance du 15 avril 2014, le Juge présidant la IIe Cour de droit public du Tribunal fédéral a admis la requête d'effet suspensif contenue dans le recours.

Considérant en droit :
1.
1.1. En vertu de l'art. 83 let. c ch. 2 LTF, le recours en matière de droit public est irrecevable contre les décisions en matière de droit des étrangers qui concernent une autorisation à laquelle ni le droit fédéral ni le droit international ne donnent droit. En l'espèce, la vie conjugale du recourant avec une ressortissante suisse ayant cessé d'exister, celui-ci ne peut déduire un droit à une autorisation de séjour de l'art. 42 al. 1 de la loi fédérale du 16 décembre 2005 sur les étrangers (LEtr; RS 142.20). Comme il a été admis que l'union conjugale avait duré plus de trois ans, l'art. 50 al. 1 let. a LEtr, dont le recourant se prévaut, pourrait lui conférer un tel droit. En pareilles circonstances, il convient d'admettre un droit de recourir sous l'angle de l'art. 83 let. c ch. 2 LTF, le point de savoir si les conditions de l'art. 50 al. 1 let. a LEtr sont remplies ressortissant au fond et non à la recevabilité (<ref-ruling> consid. 1.1 p. 179).
1.2. Au surplus, le recours est dirigé contre une décision finale (<ref-law>), rendue en dernière instance cantonale par un tribunal supérieur (art. 86 al. 1 let. d et al. 2 LTF); il a été formé en temps utile (<ref-law>) et dans les formes prescrites (<ref-law>) par le destinataire de l'arrêt attaqué qui a un intérêt digne de protection à son annulation ou à sa modification et qui a partant qualité pour recourir (<ref-law>). Par conséquent, il est en principe recevable en tant que recours en matière de droit public.
2.
Saisi d'un recours en matière de droit public, le Tribunal fédéral contrôle librement le respect du droit fédéral, qui comprend les droits de nature constitutionnelle, sous réserve des exigences de motivation figurant à l'<ref-law>, selon lequel le Tribunal fédéral n'examine les droits fondamentaux que si le grief a été invoqué et motivé par le recourant.
3.
3.1. Le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente (<ref-law>), sous réserve des cas prévus à l'<ref-law>. Selon l'<ref-law>, le recourant ne peut critiquer les constatations de fait ressortant de la décision attaquée que si celles-ci ont été effectuées en violation du droit au sens de l'<ref-law> ou de manière manifestement inexacte, c'est-à-dire arbitraire (cf. <ref-ruling> consid. 7.1 p. 51), et si la correction du vice est susceptible d'influer sur le sort de la cause (<ref-ruling> consid. 4.2 p. 234; <ref-ruling> consid. 1.5 p. 129 s.). Les faits et les critiques invoqués de manière appellatoire sont irrecevables (<ref-ruling> consid. 5.1 p. 356; <ref-ruling> consid. 3 p. 104 s.). Par ailleurs, aucun fait nouveau ni preuve nouvelle ne peut en principe être présenté devant le Tribunal de céans (<ref-law>).
3.2. Dans son mémoire, le recourant présente sa propre version des événements. Dans la mesure où celle-ci s'écarte des faits constatés dans l'arrêt attaqué sans qu'il soit indiqué en quoi ceux-ci seraient auraient été constatés arbitrairement, elle n'est pas admissible. La Cour de céans n'en tiendra donc pas compte.
4.
Selon l'art. 50 al. 1 let. a LEtr, après dissolution de la famille, le droit du conjoint à l'octroi d'une autorisation de séjour et à la prolongation de sa durée de validité en vertu des art. 42 et 43 LEtr subsiste si l'union conjugale a duré au moins trois ans et que l'intégration est réussie. Ces deux conditions sont cumulatives (<ref-ruling> consid. 3.5.3 p. 295; <ref-ruling> consid. 3.3.3 p. 119).
4.1. En l'espèce, la réalisation de la condition de durée de l'union conjugale n'est pas litigieuse. Concernant le point de savoir si le recourant peut se prévaloir d'une intégration réussie, l'arrêt attaqué retient, en faveur du recourant, que celui-ci parle le français, l'allemand et le suisse-allemand, qu'il est bien intégré socialement et respectueux de l'ordre juridique suisse, la condamnation pénale dont il a fait l'objet datant de plus de dix ans. Sous l'angle professionnel, les juges cantonaux constatent que le recourant a exercé différents emplois et que, s'il a passé une période relativement longue au chômage, son parcours dénote une volonté d'être actif professionnellement et qu'au demeurant, il n'a perçu une aide sociale que durant deux mois, en 2005. Sous l'angle financier, ils mettent en revanche en évidence une situation fortement obérée. Détaillant des documents émanant de l'Office des poursuites, ils relèvent notamment que, pour la période allant de son entrée en Suisse (en 1999) au 5 janvier 2012, des actes de défaut de biens ont été délivrés à l'encontre du recourant pour un montant total de 100'862.90 fr. et des poursuites ouvertes contre lui pour 45'155.55 fr. Pour la période du 1er janvier 2004 au 13 août 2012, les poursuites contre le recourant s'élevaient à 43'024.30 fr. et les actes de défauts de biens à 68'393.80 francs, alors que pour la période du 1er janvier 2004 au 16 janvier 2014, les poursuites se montaient à 74'949.70 fr. et les actes de défauts de biens à 31'168.95 fr. Les juges cantonaux déduisent de ces documents que, malgré la volonté du recourant de rembourser ses dettes (il a acquitté une somme de 32'022.53 fr. du 1er janvier 2008 au 16 janvier 2014, notamment par le biais d'une saisie de salaire de 1'000 fr. par mois et de l'entier du 13ème salaire, effectuée depuis le 1er juin 2012), cet endettement ne permet pas de qualifier l'intégration du recourant de réussie au sens de l'art. 50 al. 1 let. a LEtr. Le recourant conteste cette appréciation.
4.2. Le principe de l'intégration doit permettre aux étrangers dont le séjour est légal et durable de participer à la vie économique, sociale et culturelle de la Suisse (art. 4 al. 2 LEtr). D'après l'art. 77 al. 4 de l'ordonnance du 24 octobre 2007 relative à l'admission, au séjour et à l'exercice d'une activité lucrative (OASA; RS 142.201), un étranger s'est bien intégré, au sens de l'art. 50 al. 1 let. a LEtr, notamment lorsqu'il respecte l'ordre juridique suisse et les valeurs de la Constitution fédérale (let. a) et qu'il manifeste sa volonté de participer à la vie économique et d'apprendre la langue nationale parlée au lieu de domicile (let. b). Selon l'art. 4 de l'ordonnance du 24 octobre 2007 sur l'intégration des étrangers (OIE; RS 142.205), la contribution des étrangers à l'intégration se manifeste notamment par le respect de l'ordre juridique et des valeurs de la Constitution fédérale (let. a), par l'apprentissage de la langue nationale parlée sur le lieu de domicile (let. b), par la connaissance du mode de vie suisse (let. c) et par la volonté de participer à la vie économique et d'acquérir une formation (let. d). L'adverbe "notamment", qui est employé tant à l'art. 77 al. 4 OASA qu'à l'<ref-law> illustre le caractère non exhaustif des critères d'intégration qui sont énumérés par ces dispositions et met aussi en exergue le fait que la notion "d'intégration réussie" doit s'examiner à l'aune d'une appréciation globale des circonstances (arrêts 2C_65/2014 du 27 janvier 2015 consid. 3.2; 2C_65/2014 du 27 janvier 2015 consid. 3.2; 2C_839/2010 du 25 février 2011 consid. 7.1.2). Dans l'examen de ces critères d'intégration, les autorités compétentes disposent d'un large pouvoir d'appréciation que le Tribunal fédéral ne revoit qu'avec retenue (cf. art. 54 al. 2 et 96 al. 1 LEtr et <ref-law>; arrêts 2C_390/2014 du 22 janvier 2015 consid. 4.2.1; 2C_14/2014 du 27 août 2014 consid. 4.6.1, non publié in <ref-ruling>, et les références citées; 2C_930/2012 du 10 janvier 2013 consid. 3.1).
4.3. Selon la jurisprudence, il n'y a pas d'intégration réussie lorsque l'étranger n'exerce pas d'activité lucrative qui lui permette de couvrir ses besoins et qu'il dépend des prestations sociales pendant une période relativement longue (arrêts 2C_385/2014 du 19 janvier 2015 consid. 4.1; 2C_298/2014 du 12 décembre 2014 consid. 6.3; 2C_930/2012 du 10 janvier 2013 consid. 3.1). A l'inverse, le fait pour une personne de ne pas avoir commis d'infractions pénales et de pourvoir à son revenu sans recourir à l'aide sociale ne permet pas à lui seul de retenir une intégration réussie (arrêts 2C_390/2014 du 22 janvier 2015 consid. 4.2.1; 2C_14/2014 du 27 août 2014 consid. 4.6.1, non publié in <ref-ruling>, et les références citées). Des périodes d'inactivité de durée raisonnable n'impliquent pas forcément une absence d'intégration professionnelle (arrêts 2C_749/2011 du 20 janvier 2012 consid. 3.3; 2C_427/2011 du 26 octobre 2011 consid. 5.3). Il n'est pas indispensable que l'étranger fasse montre d'une carrière professionnelle requérant des qualifications spécifiques; l'intégration réussie au sens de l'art. 50 al. 1 let. a LEtr n'implique en effet pas nécessairement la réalisation d'une trajectoire professionnelle particulièrement brillante au travers d'une activité exercée sans discontinuité. L'essentiel en la matière est que l'étranger subvienne à ses besoins, n'émarge pas à l'aide sociale et ne s'endette pas (arrêts 2C_385/2014 du 19 janvier 2015 consid. 4.1; 2C_749/2011 du 20 janvier 2012 consid. 3.3; 2C_427/2011 du 26 octobre 2011 consid. 5.3). Cela étant, l'impact de l'endettement dans l'appréciation de l'intégration d'une personne dépend du montant des dettes, de leurs causes et du point de savoir si la personne les a remboursées ou s'y emploie de manière constante et efficace (arrêt 2C_749/2011 du 20 janvier 2012 consid. 4.4; cf. également arrêt 2C_385/2014 du 19 janvier 2015 consid. 4.3). L'évolution de la situation financière doit ainsi être prise en considération à cet égard (cf. par exemple, dans le contexte de la révocation de l'autorisation d'établissement au sens de l'art. 63 LEtr, arrêt 2C_280/2014 du 22 août 2014 consid. 4.6.2). L'intégration réussie d'un étranger qui est actif professionnellement en Suisse, dispose d'un emploi fixe, a toujours été financièrement indépendant, se comporte correctement et maîtrise la langue locale ne peut être niée qu'en la présence de circonstances particulièrement sérieuses (arrêts 2C_930/2012 du 10 janvier 2013 consid. 3.1; 2C_749/2011 du 20 janvier 2012 consid. 3.3; 2C_839/2010 du 25 février 2011 consid. 7.1.2). L'absence de liens sociaux très étroits en Suisse n'exclut pas non plus d'emblée l'existence d'une intégration réussie, de même que l'absence de vie associative (arrêts 2C_930/2012 du 10 janvier 2013 consid. 3.1; 2C_430/2011 du 11 octobre 2011 consid. 4.2; 2C_839/2010 du 25 février 2011 consid. 7.1.2).
4.4. En l'espèce, sur le plan de l'intégration sociale, le recourant parle le français, l'allemand et le suisse-allemand. L'arrêt attaqué relève également que plusieurs personnes (son employeur, son ancien employeur, une amie et le concierge de son immeuble) ont témoigné, par des lettres de soutien, de sa bonne intégration sociale. Le recourant doit par ailleurs être considéré comme respectueux de l'ordre juridique suisse, dans la mesure où la condamnation pénale dont il a fait l'objet date de plus de dix ans. Sous l'angle professionnel, il ressort de l'arrêt entrepris que le recourant a perçu une aide sociale durant une brève période de deux mois alors qu'il travaillait comme ferrailleur, emploi qu'il a exercé de février 2005 à septembre 2006. S'en est suivie une période de chômage d'octobre 2006 à juin 2008, entrecoupée d'une activité exercée de mai à décembre 2007 et qui a généré un gain intermédiaire; l'employeur en étant du reste satisfait, puisqu'il a ensuite engagé le recourant en juillet 2008. Il a toutefois été victime d'un accident non professionnel le 15 octobre 2011, pour lequel il a reçu des indemnités journalières. Il travaille depuis le 8 mars 2013 comme ouvrier du bâtiment et gagne actuellement un salaire brut de 5'000 fr. treize fois l'an. Le recourant a ainsi, comme l'a du reste reconnu le Tribunal cantonal, la volonté d'être actif professionnellement, même s'il a connu une période d'inactivité non négligeable (13 mois sur 21 mois de chômage).
4.5. En pareilles circonstances, il faut des éléments particulièrement sérieux permettant de nier son intégration. En l'espèce, seul l'endettement du recourant pose problème dans ce contexte. Le litige revient dès lors à déterminer si ce point est suffisant pour contrebalancer l'ensemble des circonstances qui parlent en faveur d'une intégration réussie.
Conformément à la jurisprudence rappelée ci-dessus, il faut tenir compte du montant des dettes, de leurs causes et du point de savoir si la personne les a remboursées ou s'y emploie de manière constante et efficace. A cet égard, le montant important de l'endettement parle en défaveur du recourant, de même que le fait que certaines dettes soient des dettes fiscales (cf. arrêt attaqué, p. 9) ou des montants dus à l'assurance-maladie (<ref-law>), soit des obligations légales qui incombent à toute personne vivant en Suisse. Parle en revanche en faveur du recourant le fait, constaté par le Tribunal cantonal, que celui-ci a la volonté de rembourser ses dettes, qu'il procède à des remboursements depuis le 1er janvier 2008 et que ce remboursement est effectué de manière constante à tout le moins depuis le 1er juin 2012. Concernant l'efficacité de ces remboursements, on peut s'étonner, vu la relative importance des montants saisis depuis cette date, que le montant total des dettes du recourant n'ait que peu diminué entre août 2012 (111'418.10 fr.) et janvier 2014 (106'118.65 fr.) Etant donné que le montant saisi annuellement s'élève à 17'000 fr. (soit 12 x 1'000 fr.+ 5'000 fr. de 13e salaire), il y a néanmoins lieu d'admettre que ce remboursement est suffisamment important pour être qualifié d'efficace. Il faut par ailleurs relever que l'arrêt attaqué ne fournit pas d'explication sur cette faible diminution; il expose en revanche que la diminution des actes de défaut de biens et l'augmentation des poursuites entre août 2012 et janvier 2014 provient essentiellement du fait que les créanciers au bénéfice d'actes de défaut de biens ont réactivé leurs poursuites. L'on ne peut donc pas en déduire, en défaveur du recourant, que de nouvelles poursuites auraient été ouvertes à son encontre durant cette période, et l'arrêt ne le retient au demeurant pas.
4.6. Compte tenu de ce qui précède, l'endettement du recourant n'est, au vu de l'ensemble des circonstances du cas d'espèce, en particulier de ses efforts pour les réduire, pas un élément suffisant pour nier son intégration réussie au sens de l'art. 50 al. 1 let. a LEtr. Cette conclusion s'impose également du fait que s'agissant d'un titre de séjour amené à être renouvelé régulièrement, les autorités seront à même de vérifier que le recourant continue à rembourser ses dettes et n'en crée de nouvelles. Si tel ne devait pas être le cas, la situation pourrait alors être revue en sa défaveur.
5.
Ce qui précède conduit à l'admission du recours et au renvoi de la cause au Service des migrations pour qu'il accorde au recourant une prolongation de son autorisation de séjour (cf. <ref-law>).
Il n'y a pas lieu de percevoir de frais judiciaires (<ref-law>). Le recourant peut prétendre à des dépens (<ref-law>), à la charge de la République et canton de Neuchâtel. Le Tribunal fédéral ne fera pas usage de la faculté prévue aux art. 67 et 68 al. 5 LTF et renverra la cause à l'autorité précédente pour qu'elle statue sur les frais et dépens de la procédure menée devant elle.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis. L'arrêt du Tribunal cantonal du 10 mars 2014 est annulé et la cause est renvoyée au Service des migrations pour qu'il accorde au recourant une prolongation de son autorisation de séjour.
2.
La cause est renvoyée au Tribunal cantonal pour qu'il statue à nouveau sur le sort des frais et dépens de la procédure devant lui.
3.
Il n'est pas perçu de frais judiciaires.
4.
La république et canton de Neuchâtel versera au recourant une indemnité de 2'000 fr. à titre de dépens.
5.
Le présent arrêt est communiqué au mandataire du recourant, au Service des migrations, au Département de l'économie et de l'action sociale, au Département de la justice, de la sécurité et de la culture, au Tribunal cantonal de la République et canton de Neuchâtel et au Secrétariat d'Etat aux migrations.
Lausanne, le 18 mars 2015
Au nom de la IIe Cour de droit public
du Tribunal fédéral suisse
Le Président : Zünd
La Greffière : Vuadens