There are a few components that make up precession, all of which are combined into a precession matrix, which is then applied to the position vector of the object in question.
Below I have provided code for the currently accepted Precession algorithm. It is in JavaScript, but should be easily ported to any language you're comfortable with.
My suggestion would be to start with some arbitrary vector (e.g. $ \vec{v}=[1,0,0] $ ). Generate two matrixes $P_1$, $P_2$. Compute the Matrix/Vector multiplications:
$$
\vec{v_1}=P_1\vec{v} \\
\vec{v_2}=P_2\vec{v}
$$
Then Compute The Angle Between the Two Vectors. If the angle is lesser/greater than what you're looking for, regenerate $ P_2 $ for a time further/closer to $ P_1 $ until you've found the result to the accuracy you desire.
Since the Earth's precession period is about 25,772 years, a good starting point to find one degree change is $ p1 = 2451545.5 $ (Jan 1, 2000) and $ p2 = \frac{25,772years}{360}+p1 = 2477693.34 $.
function getPrecessionMatrix(jd_tdb){
//Fukushima-Williams IAU 2006
const t=(jd_tdb-2451545.5)/36525.0;
const gamma = (-0.052928 + 10.556378*t + 0.4932044*t*t - 0.00031238*t*t*t - 0.000002788*t*t*t*t + 0.0000000260*t*t*t*t*t) /60/60*Math.PI/180;
const phi = (+84381.412819 - 46.811016*t + 0.0511268*t*t + 0.00053289*t*t*t - 0.000000440*t*t*t*t - 0.0000000176*t*t*t*t*t) /60/60*Math.PI/180;
const psi = (-0.041775 + 5038.481484*t + 1.5584175*t*t - 0.00018522*t*t*t - 0.000026452*t*t*t*t - 0.0000000148*t*t*t*t*t) /60/60*Math.PI/180;
const eps = (+84381.406 - 46.836769*t - 0.0001831*t*t + 0.00200340*t*t*t - 0.000000576*t*t*t*t - 0.0000000434*t*t*t*t*t) /60/60*Math.PI/180;
const a=Vec.getZRotationMatrix(gamma);
const b=Vec.dot(Vec.getXRotationMatrix(phi),a);
const c=Vec.dot(Vec.getZRotationMatrix(-psi),b);
const d=Vec.dot(Vec.getXRotationMatrix(-eps),c);
return d;
}
The input is a Julian Day, you can use an on-line Julian Day Converter. The code uses a Vector/Matrix library, which you should be able to find an existing one in your language of choice.