What you need is the vector of the shortest distance between the Wall and the balls center.
More generally, you seek the distance between a point and a line.
Paul Bourke has given a general solution to this well known geometry Problem on his website:
This note describes the technique and gives the solution to finding
the shortest distance from a point to a line or line segment. The
equation of a line defined through two points P1 (x1,y1) and P2
(x2,y2) is P = P1 + u (P2 - P1)
The point P3 (x3,y3) is closest to the line at the tangent to the line
which passes through P3, that is, the dot product of the tangent and
line is 0, thus (P3 - P) dot (P2 - P1) = 0
Substituting the equation of the line gives
[P3 - P1 - u(P2 - P1)] dot (P2 - P1) = 0
Solving this gives the value of u
Substituting this into the equation of the line gives the point of
intersection (x,y) of the tangent as
x = x1 + u (x2 - x1)
y = y1 + u (y2 - y1)
The distance therefore between the point P3 and the line is the
distance between (x,y) above and P3.
The only special testing for a software implementation is to ensure that P1 and P2 are not coincident (denominator in the equation
for u is 0)
If the distance of the point to a line segment is required then it is only necessary to test that u lies between 0 and 1.
The solution is similar in higher dimensions.
With the distance now calculated as (x,y) and the center of your ball as (cx,cy),
new_cx = cx - (radius-x)
new_cyy = cy - (radius -y);
On a side node, very fast moving balls might not intersect with the wall if they move more than the balls diameter per frame, since they might then "skip" through the wall, being in front of it in one fraem and completely behind behind it in the next.