Yes, there is a better way. You're looking at service areas. This is essentially a 'buffer' which is constrained to follow the paths of the network. While usually run against drive time (show areas within a five minute drive of x, where drive time [speed/distance] is the network impedance), they can be run using distance as the impedance, so a result will show you all portions of a network within x distance of your origin point.
While you're only interested in "a certain direction" and a service area will completely surround the origin, a single point in "a certain direction" doesn't make a lot of sense depending on what the road network looks like. By creating a service area, you will see exactly where the boundary of x km lies along any road in the network, be it 'this block' or 'the next block over'. You can then place your point at whichever intersection best conforms to your idea of "a certain direction".
If you're looking for a specific distance along a route, then you can generate the route first as one analysis, run a service area analysis at the appropriate distance, and finally find where the boundary of the service area intersects the specific route to locate the point.