The job is rescheduled using the SYSDATE value at the time of completion. If the job started at 10:45:00 and took 41 seconds to run, then SYSDATE will be 10:45:41 when the next run is scheduled. The solution is to explicitly set the time you want in the INTERVAL parameter like this:
i.e. trunc(sysdate) plus 1 day, 10 hours and 45 minutes.