A simple trick is utilizing, the 50-move rule counter (while your searching), you count the variation line moves in your evaluation before your final output or display.
Stepping through the PV moves:
1) if it's a pawn move, reset counter at pv move.
2) If it's an a capture, reset counter at pv move.
3) Otherwise, count up to 50 (100). If you reach 50 (100), position is draw.
4) Return 0.00 with a +/- depending on if you are ahead in material or behind.
5) You can decrease the score if you want on the ratio of 50 (100) per ply.
E.g.,
6k1/8/6PP/3B1K2/8/2b5/8/8 b
90-> 7:04/18.00 3.19 1. ... Kf8 2. Bb3 Ba1 3. Be6 Bc3 4. Bd5
Bb2 5. Kg5 Bc3 6. Bc4 Bb2 7. Kf5 Ba1
8. Bf7 Bb2 9. Ba2 Bc3 10. Ke6 Ba1 11. Bb1
Bc3 12. Kf5 Kg8 13. Be4 Ba1 14. Bd5+ Kf8
15. Bc4 Bb2 16. Kg5 Ba1 17. Be6 Bb2
18. Bb3 Ba1 19. Bf7 Bd4 20. Kh5 Bb2
21. Bb3 Bc3 22. Ba2 Ba1 23. Bd5 Bb2
24. Be6 Bc3 25. Bb3 Bb2 26. Bd5 Bd4
27. Be4 Kg8 28. Bc6 Ba1 29. Bd5+ Kf8
30. Kg4 Bb2 31. Be6 Ba1 32. Bb3 Bc3
33. Bc2 Ba1 34. Kh5 Bc3 35. Be4 Kg8
36. Bd5+ Kf8 37. Bc4 Bd4 38. Ba2 Bb2
39. Kg4 Bc3 40. Kf3 Ba1 41. Ke4 Bc3
42. Kf5 Ba1 43. Ke6 Bc3 44. Bd5 Ba1
45. Bc4 Bc3 46. Kf5 Ba1 47. Bf7 Bb2
48. Ba2 Bc3 49. Ke6 Ba1 50. Bb1 Bc3
51. Kf5 Kg8 52. Be4 Ba1 53. Bd5+ Kf8
54. Bc4 Bb2 55. Kg5 Ba1 56. Be6 Bb2
57. Bb3 Ba1 58. Bd5 Bb2 59. Kh5 Bd4
60. Ba2 Bb2 61. Kg4 Bc3 62. Kf3 Ba1
63. Ke4 Bc3 64. Kf5 Ba1 ...
No pawn moves, no captures. This should evaluate as 0.00- long before reaching ply 90.
You could easily identify the moves as just 2 types: e.g., pawn=0, capture=0, regular=1 ...
This will solve all drawn positions if you count the variation moves and add them too your 50-move-rule counter on the go!
You maybe already have endgame knowledge. I think the preferred line is:
Crafty 25.2 JE
124-> 3:02/18.00 0.00 1. ... Kf8 2. Ke4 Ba1 3. Kd3 Bb2 4. Kc2
Be5 5. Bc6 Bd4 6. Kd3 Bf6 7. Kc2 Bd4
<3-fold>
Winner, right from the get go.